const express = require('express')
var cors = require('cors')
// 创建web服务器
const app = express()

const path = require('path')

var bodyParser = require('body-parser')

// 将formidable引入
var formidable = require('formidable')

// 引入session
var session = require('express-session')
var cookieParser = require('cookie-parser')

app.use(cookieParser())

// express中是把session信息存储在内存中
// 配置session
app.use(session({
  secret: 'dsafsafsf', // 设置签名秘钥 内容可以任意填写
  cookie: { maxAge: 80 * 1000 }, // 设置cookie的过期时间，例：80s后    session和相应的cookie失效过期
  resave: true, // 强制保存，如果session没有被修改也要重新保存
  saveUninitialized: false // 如果原先没有session那么久设置，否则不设置
}))

// 处理post请求
app.use(bodyParser.urlencoded({ extended: false }))

// app.use((req, res, next) => {
//   // 1.允许哪些客户端访问我
//   // *代表允许所有客户端访问我
//   // 如果跨域请求中带有cookie信息传递，值不可以为*
//   res.header('Access-Control-Allow-Origin', '*')
//   // 2.允许客户端使用那些请求方法访问我
//   res.header('Access-Control-Allow-Methods', 'PUT,POST,GET,DELETE,OPTIONS')
//   // 3.允许客户端发送跨域请求时携带cookie信息
//   res.header('Access-Control-Allow-Credentials', true)
//   next()
// })

app.use(cors())

app.post('/login', (req, res) => {
  console.log('113')

  // 创建表单解析对象
  var form = formidable.IncomingForm()
  // 解析表单
  form.parse(req, (err, fields, fiel) => {
    // 接受客户端传过来的用户名和密码
    const { usename, usepwd } = fields
    // 用户名密码对比
    if (usename == 'admin' && usepwd == '123456') {
      // 设置session
      req.session.isLogin = true
      // console.log(req.session)
      console.log(usename, usepwd)
      res.send({
        message: true,
        reqs: req.session
      })
      console.log('22')
    } else {
      res.send({ message: false })
      console.log('33')
    }
  })
})

// 监听端口
app.listen(3000)

console.log('服务器启动成功')
